package reflect;

import java.lang.reflect.Method;
import java.util.Scanner;

/*
反射机制的调用方法
 */
public class ReflectDemo04 {
    public static void main(String[] args) throws Exception{
        //普通创建对的方式并调用该类的方法
        Person person = new Person();
        person.sayHello();

        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入类名");
        String s1 = scanner.nextLine();
        System.out.println("请输入方法名");
        String s2 = scanner.nextLine();
        //运用反射机制创建对象，并调用方法
        //运用反射机制找到person类
        //Class cla = Class.forName("reflect.Person");
        Class cla = Class.forName(s1);
        //new一个person对象
        Object object = cla.newInstance();
        //找到person对象的方法
        //Method method = cla.getMethod("sayHello");
        Method method = cla.getMethod(s2);
        //该方法可以调用并执行方法
        method.invoke(object);
    }
}
